﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel;

namespace TenderSampleApp.Models
{
    public class JuristRequest
    {
        #region VAT Firm Info
        [Required(ErrorMessage = "Обов'язкове поле")]
        //[StringLength(8, MinimumLength = 8, ErrorMessage = "Довжина коду повина бути 8 символів")]
        public string VATCode { get; set; }

        [DisplayName("Назва:")]
        [DataType(DataType.MultilineText)]
        public string VATFirmName { get; set; }

        [DisplayName("Адреса:")]
        [DataType(DataType.MultilineText)]
        public string VATAddress { get; set; }
        #endregion

        #region Jurist Firm Info
        [Required(ErrorMessage = "Обов'язкове поле")]
        //[StringLength(8, MinimumLength = 8, ErrorMessage = "Довжина коду повина бути 8 символів")]
        public string JFCode { get; set; }

        [Required(ErrorMessage = "Обов'язкове поле")]
        [Display(Name = "Повна назва")]
        [StringLength(50, ErrorMessage = "Довжина не більше 250 символів")]
        public string JFFullName { get; set; }

        [Required(ErrorMessage = "Обов'язкове поле")]
        [Display(Name = "Індекс")]
        [RegularExpression("^[0-9]*$", ErrorMessage = "Тільки цифри")]
        public string JFPostIndex { get; set; }

        [Required(ErrorMessage = "Обов'язкове поле")]
        public string JFRegion { get; set; }

        [Required(ErrorMessage = "Обов'язкове поле")]
        public string JFDistrict { get; set; }

        [Required(ErrorMessage = "Обов'язкове поле")]
        public string JFCity { get; set; }

        [Required(ErrorMessage = "Обов'язкове поле")]
        public string JFStreet { get; set; }

        [Required(ErrorMessage = "Обов'язкове поле")]
        public string JFBuild { get; set; }

        public int? JFApartment { get; set; }

        [Required(ErrorMessage = "Обов'язкове поле")]
        public string JFPhoneNumber { get; set; }

        public double JFShareStateProperty { get; set; }

        public double JFTotalAssets { get; set; }

        [Required(ErrorMessage = "Обов'язкове поле")]
        public double JFCostAcquisition { get; set; }

        [Required(ErrorMessage = "Обов'язкове поле")]
        public double JFCostAcquisitionInPercent { get; set; }

        public bool JFIsInvestmentFund { get; set; }
        #endregion

        #region Bank Info
        [Required(ErrorMessage = "Обов'язкове поле")]
        public string ExpenseOfCustomer { get; set; }

        [Required(ErrorMessage = "Обов'язкове поле")]
        public string MFO { get; set; }

        [Required(ErrorMessage = "Обов'язкове поле")]
        public string BankName { get; set; }

        [Required(ErrorMessage = "Обов'язкове поле")]
        public int Summ { get; set; }

        public string SumName { get; set; }
        #endregion

        #region Chief of Buyer
        [Required(ErrorMessage = "Обов'язкове поле")]
        public string ChiefFIO { get; set; }
        #endregion

        #region Agent of Juristic

        [Required(ErrorMessage = "Обов'язкове поле")]
        [Display(Name = "Прізвище")]
        [StringLength(50, ErrorMessage = "Довжина не більше 50 символів")]
        public string PersonLastName { get; set; }

        [Required(ErrorMessage = "Обов'язкове поле")]
        [Display(Name = "Ім'я")]
        [StringLength(50, ErrorMessage = "Довжина не більше 50 символів")]
        public string PersonName { get; set; }

        [Required(ErrorMessage = "Обов'язкове поле")]
        [Display(Name = "По батькові")]
        [StringLength(50, ErrorMessage = "Довжина не більше 50 символів")]
        public string PersonSurname { get; set; }

        [Required(ErrorMessage = "Обов'язкове поле")]
        [DisplayName("Посвідчення")]
        public string PersonСertificate { get; set; }//удостовирение

        [Required(ErrorMessage = "Обов'язкове поле")]
        [Display(Name = "Серія")]
        public string PersonSeriesСertificate { get; set; }

        [Required(ErrorMessage = "Обов'язкове поле")]
        [Display(Name = "№")]
        public string PersonNumberСertificate { get; set; }
        #endregion
        public string RequestNumber { get {return RequestNumberRegion + RequestNumberPPZ + RequestNumberAuction + RequestNumberRegistrator + RequestNumberNumber; } }
        public string RequestNumberRegion { get; set; }
        public string RequestNumberPPZ { get; set; }
        public string RequestNumberAuction { get; set; }
        public string RequestNumberRegistrator { get; set; }
        public string RequestNumberNumber { get; set; } 
    }
}